package cn.edu.cxcyzx.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import cn.edu.cxcyzx.entity.Student;
import cn.edu.cxcyzx.entity.Task;
import cn.edu.cxcyzx.entity.TaskPOJO;
import cn.edu.cxcyzx.entity.TaskProject;
import cn.edu.cxcyzx.supervisor.ResultDo;

public interface TaskService {
	
	/**
	 * 查询某项目的所有已划分任务
	 * @param projectId
	 * @return
	 */
	public ResultDo<Map<Task,List<Student>>> getProTask(int projectId);
	/**
	 * 插入任务
	 * @param tasks
	 */
	public void insertTask(List<Task> tasks);
	/**
	 * 插入一个任务
	 * @param task
	 */
	@Transactional
	public void insertOneTask(Task task,String[] members);
	/**
	 * 任务分配给学生
	 * @param taskId
	 * @param stuId
	 */
	@Transactional
	public void updateTask(String taskId,String stuId);
	/**
	 * 数据库中一共多少条任务的记录
	 * @return
	 */
	public String get_taskId();
	/**
	 * 学号查询学生任务-项目信息
	 * @param stuId
	 * @return
	 */
	public ResultDo<List<TaskProject>> getTaskProject(String stuId);
	/**
	 * 待完成任务数量
	 * @param stuId
	 * @return
	 */
	public int getTask_num(String stuId);
	/**
	 * 更新任务进度
	 * @param taskId
	 */
	@Transactional
	public ResultDo<Integer> update_process(String taskId,int projectId);
	/**
	 * 根据leaderid查询所有的任务信息
	 * @param leaderId
	 * @return
	 */
	public ResultDo<List<TaskPOJO>> getAllTaskBy_leaderId(String leaderId);
	/**
	 * 删除任务
	 * @param taskId
	 */
	public void deleteTask(String taskId);
	/**
	 * 查询项目的任务信息
	 * @param projectId
	 * @return
	 */
	public ResultDo<List<Task>> getTasks(int projectId);
}
